package com.niiwoo.activity.stage.service.sign;

import com.niiwoo.activity.stage.dto.response.sign.*;

/**
 * 用户签到服务
 */
public interface UserSignDubboService {
    /**
     * 签到
     *
     * @param userId
     */
    UserSignRespDTO sign(String userId);

    /**
     * 补签
     *
     * @param userId
     */
    UserSignRespDTO signSupplement(String userId);

    /**
     * 用户签到信息
     *
     * @param userId
     */
    UserSignSummaryRespDTO signInfos(String userId);

    /**
     * 你我点滴-用户签到信息
     *
     * @param userId
     */
    default DripInfoDTO myDripInfoForSign(String userId){
        throw new UnsupportedOperationException("不支持的方法");
    };

    /**
     * 签到提醒功能
     */
    void setSignWarn(String userId, Byte warnStatus);

    /**
     * 查询签到设置
     */
    UserSignWarnSettingDTO querySignWarnSetting(String userId);


    /**
     * 查询用户签到日历
     *
     * @param userId
     * @param currMonth
     * @return
     */
    UserSignCalendarDTO queryUserSignCalender(String userId, Integer currMonth);

    /**
     * 自动签到
     *
     */
    void autoSign();
}
